home *** CD-ROM | disk | FTP | other *** search
/ Visual Cafe 3 / Visual Cafe 3.ISO / Vcafe / Sample.bin / Notepad.java < prev    next >
Text File  |  1998-11-01  |  19KB  |  500 lines

  1. /*
  2.         A basic implementation of the JFrame class.
  3. */
  4.  
  5. import java.io.*;
  6. import java.awt.*;
  7. import java.text.*;
  8. import java.awt.event.*;
  9. import com.sun.java.swing.*;
  10. import com.sun.java.swing.text.*;
  11. import com.sun.java.swing.undo.*;
  12. import com.sun.java.swing.event.*;
  13. import com.symantec.itools.swing.actions.JActionButton;
  14. import com.symantec.itools.swing.icons.ImageIcon;
  15. import com.symantec.itools.swing.actions.JActionMenuItem;
  16. import com.symantec.itools.swing.JToolBarSeparator;
  17.  
  18. public class Notepad extends com.sun.java.swing.JFrame
  19. {
  20.     String curFile=null;
  21.     String curFileDir=null;
  22.     
  23.     public Notepad()
  24.     {
  25.         // This code is automatically generated by Visual Cafe when you add
  26.         // components to the visual environment. It instantiates and initializes
  27.         // the components. To modify the code, only use code syntax that matches
  28.         // what Visual Cafe can generate, or Visual Cafe may be unable to back
  29.         // parse your Java file into its visual environment.
  30.         //{{INIT_CONTROLS
  31.         setJMenuBar(JMenuBar1);
  32.         setTitle("Untitled");
  33.         getContentPane().setLayout(new BorderLayout(0,0));
  34.         setSize(474,377);
  35.         setVisible(false);
  36.         try {
  37.             newIcon.setImageLocation(symantec.itools.net.RelativeURL.getURL("images/new.gif"));
  38.         }
  39.         catch (java.net.MalformedURLException error) { }
  40.         //$$ newIcon.move(0,0);
  41.         try {
  42.             openIcon.setImageLocation(symantec.itools.net.RelativeURL.getURL("images/open.gif"));
  43.         }
  44.         catch (java.net.MalformedURLException error) { }
  45.         //$$ openIcon.move(0,0);
  46.         try {
  47.             saveIcon.setImageLocation(symantec.itools.net.RelativeURL.getURL("images/save.gif"));
  48.         }
  49.         catch (java.net.MalformedURLException error) { }
  50.         //$$ saveIcon.move(0,0);
  51.         try {
  52.             cutIcon.setImageLocation(symantec.itools.net.RelativeURL.getURL("images/cut.gif"));
  53.         }
  54.         catch (java.net.MalformedURLException error) { }
  55.         //$$ cutIcon.move(0,0);
  56.         try {
  57.             copyIcon.setImageLocation(symantec.itools.net.RelativeURL.getURL("images/copy.gif"));
  58.         }
  59.         catch (java.net.MalformedURLException error) { }
  60.         //$$ copyIcon.move(0,0);
  61.         try {
  62.             pasteIcon.setImageLocation(symantec.itools.net.RelativeURL.getURL("images/paste.gif"));
  63.         }
  64.         catch (java.net.MalformedURLException error) { }
  65.         //$$ pasteIcon.move(0,0);
  66.         newAction.setLongDescription("Create a new document");
  67.         newAction.setSmallIcon(newIcon);
  68.         newAction.setShortDescription("New");
  69.         newAction.setActionName("New");
  70.         //$$ newAction.move(0,0);
  71.         openAction.setLongDescription("Open An Existing Document");
  72.         openAction.setSmallIcon(openIcon);
  73.         openAction.setShortDescription("Open");
  74.         openAction.setActionName("Open");
  75.         //$$ openAction.move(0,0);
  76.         saveAction.setLongDescription("Save the current document");
  77.         saveAction.setSmallIcon(saveIcon);
  78.         saveAction.setShortDescription("Save");
  79.         saveAction.setActionName("Save");
  80.         //$$ saveAction.move(0,0);
  81.         cutAction.setLongDescription("Cut the selected text");
  82.         cutAction.setSmallIcon(cutIcon);
  83.         cutAction.setShortDescription("Cut");
  84.         cutAction.setActionName("Cut");
  85.         //$$ cutAction.move(0,0);
  86.         copyAction.setLongDescription("Copy the selected text");
  87.         copyAction.setSmallIcon(copyIcon);
  88.         copyAction.setShortDescription("Copy");
  89.         copyAction.setActionName("Copy");
  90.         //$$ copyAction.move(0,0);
  91.         pasteAction.setLongDescription("Paste text from the clipboard");
  92.         pasteAction.setSmallIcon(pasteIcon);
  93.         pasteAction.setShortDescription("Paste");
  94.         pasteAction.setActionName("Paste");
  95.         //$$ pasteAction.move(0,0);
  96.         undoAction.setEnabled(false);
  97.         undoAction.setLongDescription("Undo");
  98.         undoAction.setShortDescription("Undo");
  99.         undoAction.setActionName("Undo");
  100.         //$$ undoAction.move(0,0);
  101.         redoAction.setEnabled(false);
  102.         redoAction.setLongDescription("Redo");
  103.         redoAction.setShortDescription("Redo");
  104.         redoAction.setActionName("Redo");
  105.         //$$ redoAction.move(0,0);
  106.         exitAction.setLongDescription("Exit the application");
  107.         exitAction.setShortDescription("Exit");
  108.         exitAction.setActionName("Exit");
  109.         //$$ exitAction.move(0,0);
  110.         JScrollPane1.setOpaque(true);
  111.         getContentPane().add("Center", JScrollPane1);
  112.         JScrollPane1.setBounds(0,29,474,348);
  113.         JScrollPane1.getViewport().add(editor);
  114.         editor.setBounds(0,0,471,345);
  115.         JToolBar1.setAlignmentY(0.08F);
  116.         getContentPane().add("North", JToolBar1);
  117.         JToolBar1.setBounds(0,0,474,29);
  118.         JActionButton1.setActionCommand("New");
  119.         JActionButton1.setAction(newAction);
  120.         JToolBar1.add(JActionButton1);
  121.         JActionButton1.setBounds(16,4,51,23);
  122.         JActionButton2.setActionCommand("Open");
  123.         JActionButton2.setAction(openAction);
  124.         JToolBar1.add(JActionButton2);
  125.         JActionButton2.setBounds(67,4,57,23);
  126.         JActionButton3.setActionCommand("Save");
  127.         JActionButton3.setAction(saveAction);
  128.         JToolBar1.add(JActionButton3);
  129.         JActionButton3.setBounds(124,4,55,23);
  130.         JToolBar1.add(JToolBarSeparator1);
  131.         JToolBarSeparator1.setBounds(179,2,10,5);
  132.         JActionButton4.setActionCommand("Cut");
  133.         JActionButton4.setAction(cutAction);
  134.         JToolBar1.add(JActionButton4);
  135.         JActionButton4.setBounds(189,4,45,23);
  136.         JActionButton5.setActionCommand("Copy");
  137.         JActionButton5.setAction(copyAction);
  138.         JToolBar1.add(JActionButton5);
  139.         JActionButton5.setBounds(234,4,53,23);
  140.         JActionButton6.setActionCommand("Paste");
  141.         JActionButton6.setAction(pasteAction);
  142.         JToolBar1.add(JActionButton6);
  143.         JActionButton6.setBounds(287,4,59,23);
  144.         //$$ JMenuBar1.move(0,0);
  145.         JMenu1.setText("File");
  146.         JMenu1.setActionCommand("File");
  147.         JMenu1.setMnemonic((int)'F');
  148.         JMenuBar1.add(JMenu1);
  149.         JActionMenuItem1.setActionCommand("New");
  150.         JActionMenuItem1.setAction(newAction);
  151.         JActionMenuItem1.setAccelerator(com.sun.java.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, Event.CTRL_MASK));
  152.         JActionMenuItem1.setMnemonic((int)'N');
  153.         JMenu1.add(JActionMenuItem1);
  154.         JActionMenuItem2.setActionCommand("Open");
  155.         JActionMenuItem2.setAction(openAction);
  156.         JActionMenuItem2.setAccelerator(com.sun.java.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, Event.CTRL_MASK));
  157.         JActionMenuItem2.setMnemonic((int)'O');
  158.         JMenu1.add(JActionMenuItem2);
  159.         JActionMenuItem3.setActionCommand("Save");
  160.         JActionMenuItem3.setAction(saveAction);
  161.         JActionMenuItem3.setAccelerator(com.sun.java.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, Event.CTRL_MASK));
  162.         JActionMenuItem3.setMnemonic((int)'S');
  163.         JMenu1.add(JActionMenuItem3);
  164.         JMenu1.add(JSeparator1);
  165.         JActionMenuItem7.setActionCommand("Exit");
  166.         JActionMenuItem7.setAction(exitAction);
  167.         JActionMenuItem7.setMnemonic((int)'E');
  168.         JMenu1.add(JActionMenuItem7);
  169.         JMenu2.setText("Edit");
  170.         JMenu2.setActionCommand("Edit");
  171.         JMenu2.setMnemonic((int)'E');
  172.         JMenuBar1.add(JMenu2);
  173.         JActionMenuItem4.setActionCommand("Cut");
  174.         JActionMenuItem4.setAction(cutAction);
  175.         JActionMenuItem4.setAccelerator(com.sun.java.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, Event.CTRL_MASK));
  176.         JActionMenuItem4.setMnemonic((int)'U');
  177.         JMenu2.add(JActionMenuItem4);
  178.         JActionMenuItem5.setActionCommand("Copy");
  179.         JActionMenuItem5.setAction(copyAction);
  180.         JActionMenuItem5.setAccelerator(com.sun.java.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, Event.CTRL_MASK));
  181.         JActionMenuItem5.setMnemonic((int)'O');
  182.         JMenu2.add(JActionMenuItem5);
  183.         JActionMenuItem6.setActionCommand("Paste");
  184.         JActionMenuItem6.setAction(pasteAction);
  185.         JActionMenuItem6.setAccelerator(com.sun.java.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V, Event.CTRL_MASK));
  186.         JActionMenuItem6.setMnemonic((int)'P');
  187.         JMenu2.add(JActionMenuItem6);
  188.         JMenu2.add(JSeparator2);
  189.         JActionMenuItem8.setActionCommand("Undo");
  190.         JActionMenuItem8.setAction(undoAction);
  191.         JActionMenuItem8.setAccelerator(com.sun.java.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Z, Event.CTRL_MASK));
  192.         JMenu2.add(JActionMenuItem8);
  193.         JActionMenuItem9.setActionCommand("Redo");
  194.         JActionMenuItem9.setAction(redoAction);
  195.         JActionMenuItem9.setAccelerator(com.sun.java.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Z, Event.SHIFT_MASK|Event.CTRL_MASK));
  196.         JMenu2.add(JActionMenuItem9);
  197.         //}}
  198.         
  199.         editor.getDocument().addUndoableEditListener(undoHandler);
  200.  
  201.         JActionButton1.setText("");
  202.         JActionButton1.setToolTipText((String)JActionButton1.getAction().getValue(Action.LONG_DESCRIPTION));
  203.  
  204.         JActionButton2.setText("");
  205.         JActionButton2.setToolTipText((String)JActionButton2.getAction().getValue(Action.LONG_DESCRIPTION));
  206.  
  207.         JActionButton3.setText("");
  208.         JActionButton3.setToolTipText((String)JActionButton3.getAction().getValue(Action.LONG_DESCRIPTION));
  209.  
  210.         JActionButton4.setText("");
  211.         JActionButton4.setToolTipText((String)JActionButton4.getAction().getValue(Action.LONG_DESCRIPTION));
  212.  
  213.         JActionButton5.setText("");
  214.         JActionButton5.setToolTipText((String)JActionButton5.getAction().getValue(Action.LONG_DESCRIPTION));
  215.  
  216.         JActionButton6.setText("");
  217.         JActionButton6.setToolTipText((String)JActionButton6.getAction().getValue(Action.LONG_DESCRIPTION));
  218.  
  219.         //{{INIT_MENUS
  220.         //}}
  221.     
  222.         //{{REGISTER_LISTENERS
  223.         SymWindow aSymWindow = new SymWindow();
  224.         this.addWindowListener(aSymWindow);
  225.         SymAction lSymAction = new SymAction();
  226.         exitAction.addActionListener(lSymAction);
  227.         newAction.addActionListener(lSymAction);
  228.         openAction.addActionListener(lSymAction);
  229.         saveAction.addActionListener(lSymAction);
  230.         cutAction.addActionListener(lSymAction);
  231.         copyAction.addActionListener(lSymAction);
  232.         pasteAction.addActionListener(lSymAction);
  233.         undoAction.addActionListener(lSymAction);
  234.         redoAction.addActionListener(lSymAction);
  235.         //}}
  236.     }
  237.     
  238.     void updateUndoStatus()
  239.     {
  240.         undoAction.setEnabled(undo.canUndo());
  241.         undoAction.setActionName(undo.getUndoPresentationName());
  242.         redoAction.setEnabled(undo.canRedo());
  243.         redoAction.setActionName(undo.getRedoPresentationName());
  244.     }
  245.     class UndoHandler implements UndoableEditListener {
  246.  
  247.     /**
  248.      * Messaged when the Document has created an edit, the edit is
  249.      * added to <code>undo</code>, an instance of UndoManager.
  250.      */
  251.         public void undoableEditHappened(UndoableEditEvent e) 
  252.         {
  253.             undo.addEdit(e.getEdit());
  254.             updateUndoStatus();
  255.         }
  256.     }
  257.  
  258.  
  259.     UndoableEditListener undoHandler = new UndoHandler();
  260.     UndoManager undo = new UndoManager();
  261.  
  262.     static public void main(String args[])
  263.     {
  264.         Notepad np = new Notepad();
  265.         np.setLocation(50,50);
  266.         np.setVisible(true);
  267.     }
  268.  
  269.     //{{DECLARE_CONTROLS
  270.     com.symantec.itools.swing.icons.ImageIcon newIcon = new com.symantec.itools.swing.icons.ImageIcon();
  271.     com.symantec.itools.swing.icons.ImageIcon openIcon = new com.symantec.itools.swing.icons.ImageIcon();
  272.     com.symantec.itools.swing.icons.ImageIcon saveIcon = new com.symantec.itools.swing.icons.ImageIcon();
  273.     com.symantec.itools.swing.icons.ImageIcon cutIcon = new com.symantec.itools.swing.icons.ImageIcon();
  274.     com.symantec.itools.swing.icons.ImageIcon copyIcon = new com.symantec.itools.swing.icons.ImageIcon();
  275.     com.symantec.itools.swing.icons.ImageIcon pasteIcon = new com.symantec.itools.swing.icons.ImageIcon();
  276.     BasicAction newAction = new BasicAction();
  277.     BasicAction openAction = new BasicAction();
  278.     BasicAction saveAction = new BasicAction();
  279.     BasicAction cutAction = new BasicAction();
  280.     BasicAction copyAction = new BasicAction();
  281.     BasicAction pasteAction = new BasicAction();
  282.     BasicAction undoAction = new BasicAction();
  283.     BasicAction redoAction = new BasicAction();
  284.     BasicAction exitAction = new BasicAction();
  285.     com.sun.java.swing.JScrollPane JScrollPane1 = new com.sun.java.swing.JScrollPane();
  286.     com.sun.java.swing.JTextArea editor = new com.sun.java.swing.JTextArea();
  287.     com.sun.java.swing.JToolBar JToolBar1 = new com.sun.java.swing.JToolBar();
  288.     com.symantec.itools.swing.actions.JActionButton JActionButton1 = new com.symantec.itools.swing.actions.JActionButton();
  289.     com.symantec.itools.swing.actions.JActionButton JActionButton2 = new com.symantec.itools.swing.actions.JActionButton();
  290.     com.symantec.itools.swing.actions.JActionButton JActionButton3 = new com.symantec.itools.swing.actions.JActionButton();
  291.     com.symantec.itools.swing.JToolBarSeparator JToolBarSeparator1 = new com.symantec.itools.swing.JToolBarSeparator();
  292.     com.symantec.itools.swing.actions.JActionButton JActionButton4 = new com.symantec.itools.swing.actions.JActionButton();
  293.     com.symantec.itools.swing.actions.JActionButton JActionButton5 = new com.symantec.itools.swing.actions.JActionButton();
  294.     com.symantec.itools.swing.actions.JActionButton JActionButton6 = new com.symantec.itools.swing.actions.JActionButton();
  295.     com.sun.java.swing.JMenuBar JMenuBar1 = new com.sun.java.swing.JMenuBar();
  296.     com.sun.java.swing.JMenu JMenu1 = new com.sun.java.swing.JMenu();
  297.     com.symantec.itools.swing.actions.JActionMenuItem JActionMenuItem1 = new com.symantec.itools.swing.actions.JActionMenuItem();
  298.     com.symantec.itools.swing.actions.JActionMenuItem JActionMenuItem2 = new com.symantec.itools.swing.actions.JActionMenuItem();
  299.     com.symantec.itools.swing.actions.JActionMenuItem JActionMenuItem3 = new com.symantec.itools.swing.actions.JActionMenuItem();
  300.     com.sun.java.swing.JSeparator JSeparator1 = new com.sun.java.swing.JSeparator();
  301.     com.symantec.itools.swing.actions.JActionMenuItem JActionMenuItem7 = new com.symantec.itools.swing.actions.JActionMenuItem();
  302.     com.sun.java.swing.JMenu JMenu2 = new com.sun.java.swing.JMenu();
  303.     com.symantec.itools.swing.actions.JActionMenuItem JActionMenuItem4 = new com.symantec.itools.swing.actions.JActionMenuItem();
  304.     com.symantec.itools.swing.actions.JActionMenuItem JActionMenuItem5 = new com.symantec.itools.swing.actions.JActionMenuItem();
  305.     com.symantec.itools.swing.actions.JActionMenuItem JActionMenuItem6 = new com.symantec.itools.swing.actions.JActionMenuItem();
  306.     com.sun.java.swing.JSeparator JSeparator2 = new com.sun.java.swing.JSeparator();
  307.     com.symantec.itools.swing.actions.JActionMenuItem JActionMenuItem8 = new com.symantec.itools.swing.actions.JActionMenuItem();
  308.     com.symantec.itools.swing.actions.JActionMenuItem JActionMenuItem9 = new com.symantec.itools.swing.actions.JActionMenuItem();
  309.     //}}
  310.  
  311.     //{{DECLARE_MENUS
  312.     //}}
  313.  
  314.     class SymWindow extends java.awt.event.WindowAdapter
  315.     {
  316.         public void windowClosing(java.awt.event.WindowEvent event)
  317.         {
  318.             Object object = event.getSource();
  319.             if (object == Notepad.this)
  320.                 notepad_windowClosing(event);
  321.         }
  322.     }
  323.  
  324.     void notepad_windowClosing(java.awt.event.WindowEvent event)
  325.     {
  326.         exitAction.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED,"exit"));
  327.     }
  328.  
  329.     class SymAction implements java.awt.event.ActionListener
  330.     {
  331.         public void actionPerformed(java.awt.event.ActionEvent event)
  332.         {
  333.             Object object = event.getSource();
  334.             if (object == exitAction)
  335.                 exitAction_actionPerformed(event);
  336.             else if (object == newAction)
  337.                 newAction_actionPerformed(event);
  338.             else if (object == openAction)
  339.                 openAction_actionPerformed(event);
  340.             else if (object == saveAction)
  341.                 saveAction_actionPerformed(event);
  342.             else if (object == cutAction)
  343.                 cutAction_actionPerformed(event);
  344.             else if (object == copyAction)
  345.                 copyAction_actionPerformed(event);
  346.             else if (object == pasteAction)
  347.                 pasteAction_actionPerformed(event);
  348.             else if (object == undoAction)
  349.                 undoAction_actionPerformed(event);
  350.             else if (object == redoAction)
  351.                 redoAction_actionPerformed(event);
  352.         }
  353.     }
  354.  
  355.     void exitAction_actionPerformed(java.awt.event.ActionEvent event)
  356.     {
  357.         System.exit(0);
  358.     }
  359.  
  360.     void newAction_actionPerformed(java.awt.event.ActionEvent event)
  361.     {
  362.         Document oldDoc = editor.getDocument();
  363.         if(oldDoc != null)
  364.         {
  365.             oldDoc.removeUndoableEditListener(undoHandler);
  366.         }
  367.         editor.setDocument(new PlainDocument());
  368.         editor.getDocument().addUndoableEditListener(undoHandler);
  369.         undo.discardAllEdits();
  370.         updateUndoStatus();
  371.         setTitle("Untitled");
  372.         curFile=null;
  373.         curFileDir=null;
  374.     }
  375.  
  376.     void openAction_actionPerformed(java.awt.event.ActionEvent event)
  377.     {
  378.         try
  379.         {
  380.             FileDialog fd = new FileDialog(this);
  381.             fd.setMode(FileDialog.LOAD);
  382.             fd.setVisible(true);
  383.             
  384.             String theFile = fd.getFile();
  385.             String theFileDir = fd.getDirectory();
  386.             if ( (theFile == null) || (theFile.equals("")))
  387.             {
  388.                 //no selected file so abort
  389.                 return;
  390.             }
  391.             
  392.             File f=new File(theFileDir, theFile);
  393.             if(!f.exists())
  394.             {   //file not there, abort
  395.                 return;
  396.             }
  397.             Document oldDoc = editor.getDocument();
  398.             if(oldDoc != null)
  399.             {
  400.                 oldDoc.removeUndoableEditListener(undoHandler);
  401.             }
  402.             editor.setDocument(new PlainDocument());
  403.             editor.getDocument().addUndoableEditListener(undoHandler);
  404.  
  405.             setTitle(theFile);
  406.             
  407.             Reader in=new FileReader(f);
  408.             char[] buff = new char[4096];
  409.             int nch;
  410.             while ((nch = in.read(buff, 0, buff.length)) != -1) 
  411.             {
  412.                 editor.getDocument().insertString(editor.getDocument().getLength(), new String(buff, 0, nch), null);
  413.             }
  414.             undo.discardAllEdits();
  415.             updateUndoStatus();
  416.  
  417.             curFile = theFile;
  418.             curFileDir = theFileDir;
  419.             setTitle(curFile);
  420.         }
  421.         catch(Exception e)
  422.         {
  423.             e.printStackTrace();
  424.         }
  425.     }
  426.  
  427.     void saveAction_actionPerformed(java.awt.event.ActionEvent event)
  428.     {
  429.         try
  430.         {
  431.             String text = editor.getText();
  432.             if (curFile==null)
  433.             {
  434.                 FileDialog fd = new FileDialog(this);
  435.                 fd.setMode(FileDialog.SAVE);
  436.                 fd.setVisible(true);
  437.                 String theFile=fd.getFile();
  438.                 String theFileDir=fd.getDirectory();
  439.                 if ( (theFile == null) || (theFile.equals("")))
  440.                 {
  441.                     //no selected file so abort
  442.                     return;
  443.                 }
  444.                 curFile=theFile;
  445.                 curFileDir=theFileDir;
  446.             }
  447.             
  448.             File f = new File(curFileDir, curFile);
  449.             FileWriter out = new FileWriter(f);
  450.             out.write(text);
  451.             out.close();
  452.             setTitle(curFile);
  453.         }
  454.         catch(Exception e)
  455.         {
  456.             e.printStackTrace();
  457.         }
  458.     }
  459.  
  460.     void cutAction_actionPerformed(java.awt.event.ActionEvent event)
  461.     {
  462.         editor.cut();
  463.     }
  464.  
  465.     void copyAction_actionPerformed(java.awt.event.ActionEvent event)
  466.     {
  467.         editor.copy();
  468.     }
  469.  
  470.     void pasteAction_actionPerformed(java.awt.event.ActionEvent event)
  471.     {
  472.         editor.paste();
  473.     }
  474.  
  475.     void undoAction_actionPerformed(java.awt.event.ActionEvent event)
  476.     {
  477.         try
  478.         {
  479.             undo.undo();
  480.         }
  481.         catch (Exception e)
  482.         {
  483.             e.printStackTrace();
  484.         }
  485.         updateUndoStatus();
  486.     }
  487.  
  488.     void redoAction_actionPerformed(java.awt.event.ActionEvent event)
  489.     {
  490.         try
  491.         {
  492.             undo.redo();
  493.         }
  494.         catch (Exception e)
  495.         {
  496.             e.printStackTrace();
  497.         }
  498.         updateUndoStatus();
  499.     }
  500. }